perm filename MUSIO.FAI[MUS,LCS]1 blob
sn#007382 filedate 1974-01-08 generic text, type T, neo UTF8
00100 TITLE MUSIO
00200 INTERNAL ZBIT,GETTAP,TOTAPE,FINTAP,BACKSP,USETI
00300
00400 ;'CH' IS USED IN GETTAP, TOTAPE
00500 ;'CH2' " " " MTA1, INMTA1, GETFI2, FASTI2
00600 INTERNAL GETFI2,FASTI2
00700
00800 CH←12
00900 CH2←11
01000 CH3←13
01010
01020 ; CALL USETI(WDS/128)
01030
01040 USETI: 0
01045 MOVE 1,@(16)
01050 USETI CH2,(1)
01060 JRA 1,1(16)
01100
01200 ;CALL TOTAPE(<ARRAY>,<NO.OF WORDS>) WRITES ON MAGTAPE
01300
01400 TOTAPE: 0
01500 HRRZ 0,0(16)
01600 SUBI 0,1
01700 MOVEM 0,COM
01800 MOVN 0,@1(16)
01900 HRLM 0,COM
02000 OUTPUT CH,COM
02100 STATZ CH,740000
02200 0
02300 JRA 16,2(16)
02400
02500 ;CALL GETTAP
02600
02700 GETTAP: 0 ;USES TOTAPE, CH. READS OR WRITES MTA0.
02800 INIT CH,617
02900 SIXBIT/MTA0/
03000 0
03100 HALT
03200 JRA 16,0(16)
03300
03400 ; CALL FINTAP
03500
03600 FINTAP: 0
03700 CLOSE CH,0
03800 STATZ CH,740000
03900 0
04000 RELEASE CH,0
04100 JRA 16,0(16)
04200 ; CALL BACKSP
04300
04400 BACKSP: 0
04500 INIT CH,617
04600 SIXBIT/MTA0/
04700 0
04800 HALT
04900 MTAPE CH,7
05000 JRA 16,0(16)
05100
05200 ; CALL ZBIT(<INPUT ARRAY>,<OUTPUT ARRAY>)
05300 ; (256 WDS) (512 WDS)
05400
05500 ZBIT: 0
05600 MOVE 2,(16)
05700 MOVE 1,1(16)
05800 HRLI 2,-=256
05900
06000 LOOP: HLRE 0,(2)
06100 FSC 0,233 ;FLOAT IT
06200 MOVEM 0,(1) ; GETS 512 18-BIT SAMPLES OUT OF 256 WDS.
06300 HRRE 0,(2)
06400 FSC 0,233
06500 MOVEM 0,1(1)
06600 ADDI 1,2
06700 AOBJN 2,LOOP
06800 JRA 16,1(16)
06900
07000
07100 BLKS←=1
07200 REGS: BLOCK 20
07300
07400 ;CALL GETFIL(<FILE>)
07500
07600 GETFI2: 0
07700 MOVE 0,@0(16)
07800 MOVEM 0,FILNAM
07900 JSA 16,INTFI2
08000 MOVE 0,[SIXBIT/DMD/]
08100 MOVEM 0,DIR+1
08200 JSA 16,LKUP
08300 SKIPA
08400 JRST GETF3
08500 SETZM DIR+1
08600 JSA 16,LKUP
08700 0
08800 GETF3: JRA 16,1(16)
08900
09000 LKUP: 0
09100 SETZM DIR+2
09200 SETZM DIR+3
09300 LOOKUP CH2,DIR
09400 JRA 16,0(16)
09500 JRA 16,1(16)
09600
09700 DIR: BLOCK 4
09800
09900 ;CALL FASTI2(<ARRAY>,<NO. WORDS>)
10000
10100 FASTI2: 0
10200 HRRZ 0,0(16)
10300 SUBI 0,1
10400 MOVEM 0,COM
10500 MOVN 0,@1(16)
10600 HRLM 0,COM
10700 INPUT CH2,COM
10800 STATZ CH2,740000
10900 0
11000 JRA 16,2(16)
11100
11200 INTFI2: 0 ;INITS DSK
11300 MOVEI REGS
11400 BLT REGS+3
11500 INIT CH2,17
11600 SIXBIT/DSK/
11700 0
11800 0
11900 DSKX: MOVE 0,FILNAM#
12000 MOVEM 0,FN#
12100 MOVE 1,[POINT 7,FN]
12200 INTF3: MOVE 2,[POINT 6,DIR]
12300 SETZM DIR
12400 MOVEI 3,5
12500 INTF1: ILDB 0,1
12600 CAIN 0," "
12700 JRST INTF2
12800 SUBI 0,40
12900 IDPB 0,2
13000 SOJG 3,INTF1
13100 INTF2: HRLZI REGS
13200 BLT 3
13300 JRA 16,0(16)
13400
13500 COM: OCT 0,0
13600 ;;;COM1: 0
13700 BLKNUM: 0
13800
13900 END